package br.com.inner.modelo;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.ManyToOne;
import javax.persistence.JoinColumn;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="JOB_EMPRESA")
public class JobEmpresa {

	@Id
	@GeneratedValue(generator="JobEmpresaTab")
	@TableGenerator(name="JobEmpresaTab", table="TABLE_GEN",
            pkColumnName="ID_NAME", valueColumnName="ID_VAL",
            pkColumnValue="JOB_EMPRESA_GEN", allocationSize=1)
	@Column(name="cdJobEmpresa", length=5)
	private BigDecimal cdJobEmpresa;
	
	@ManyToOne
	@JoinColumn(name="cdJob", referencedColumnName = "cdJob")
	private Job job;
	
	@ManyToOne
	@JoinColumn(name="cdEmpresa", referencedColumnName = "cdEmpresa")
	private Empresa empresa;
	
	@Enumerated(EnumType.STRING)
	@Column(name="status", length=5)
	private StatusJob status;
	
	@Temporal(TemporalType.DATE)
	@Column(name="dtRecebimento")
	private Date dtRecebimento;

	public JobEmpresa(){
	}
	
	public JobEmpresa(Job job, Empresa empresa){
		this.job = job;
		this.empresa = empresa;
	}
	
	public JobEmpresa(Job job, Empresa empresa, Date data, StatusJob status){
		this.job = job;
		this.empresa = empresa;
		this.dtRecebimento = data;
		this.status = status;
	}
	
	public BigDecimal getCdJobEmpresa() {
		return cdJobEmpresa;
	}

	public void setCdJobEmpresa(BigDecimal cdJobEmpresa) {
		this.cdJobEmpresa = cdJobEmpresa;
	}

	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	public Job getJob() {
		return job;
	}

	public void setJob(Job job) {
		this.job = job;
	}

	public Date getDtRecebimento() {
		return dtRecebimento;
	}

	public void setDtRecebimento(Date dtRecebimento) {
		this.dtRecebimento = dtRecebimento;
	}

	public StatusJob getStatus() {
		return status;
	}

	public void setStatus(StatusJob status) {
		this.status = status;
	}
	
	

	
}
